Обработка "Запросник" предназначена для составления и исполнения запросов 1С:Предприятия 8.

Список запросов

В левой верхней части основной формы располагается список запросов, составленных пользователем. Возможно добавление, удаление, перемещение элементов этого списка. По двойному щелчку мыши по строке списка происходит выполнение выбранного запроса. Управление списком осуществляется с помощью блока кнопок командной панели.

Список запросов при необходимости можно скрыть используя гиперссылку "Скрыть/показать список запросов". При открытии обработки со списком содержащим один запрос - список автоматически скрывается.

Созданный список запросов можно сохранить в файле с расширением sel.

Текст запроса

В правой верхней части обработки располагается непосредственно текст текущего элемента списка запроса. 

В контекстном меню текста запроса добавлены следующие пункты:

Комментировать - установить символы комментария (//)  на выделенные строки текста запроса.

Снять комментарий - снять символы комментария (//)  с выделенных строк текста запроса.

Удалить символы модуля - очистить текст запроса, перенесенный из программного модуля от символов "|", ";" и кавычек.

В нижнем правом углу поля текста запроса располагаются кнопки для копирования текста запроса в буфер. Верхняя кнопка копирует текст запроса в буфер как есть, нижняя кнопка открывает окно с кариантами текста запроса для вставки в программный модуль.

Кнопка "Конструктор запроса" над текстом запроса служит для редактирования текста запроса с помощью конструктора. 

Кнопка "Параметры" открывает диалог для установки значений параметров запроса. 
В первой колонке указывается имя параметра. Во второй колонке указывается признак, позволяющий задать значение параметра выражением на встроенном языке 1С:Предприятия 8. В третьей колонке указывается собственно параметр запроса, который может быть задан непосредственно значением или выражением на встроенном языке. Список параметров текущего запроса можно получить нажатием кнопки "Из запроса".

Неиспользуемые в запросе параметры отображаются в списке серым цветом. Кнопка "Удалить неиспользуемые" очищает список параметров от неиспользуемых в текущем запросе параметров.

Диалог настройки параметров открывается автоматически если после редактирования текста в конструкторе в запросе появились новые параметры.

Кнопка "Момент времени / Граница" служит для задания значения параметров типа Момент времени или Граница.

Кнопка "СЗ" служит для редактирования параметров типа "Список значений".

Кнопка "ТЗ" служит для редактирования параметров типа "Таблица значений".  Предусмотрена возможность задавать структуру полей таблицы значений и содержимое строк.

Кнопка "Выборки" открывает диалог для настроить правила выборки данных из результата запроса.

Предусмотрено 2 режима выгрузки результата запроса в таблицу/дерево:

Автоматическую настройку выборок можно выполнить нажав кнопку "Из запроса". Выборки создаются исходя из того, как они описаны в итогах запорса.

При работе с настроенными выборками становится доступным флажок "Обходить иерархические выборки рекурсивно". При установленном флажке обход иерархических выборок осуществляется рекурсивно до нижнего уровня. При снятом флажке иерархическая выборка вернет только единственный уровень иерархии результата.

При формировании результата по списку настроенных выборок, становится доступным флажок "Показать типы записей и уровни группировок". При включении данного режима в результате запроса будут отображены дополнительные колонки для отображения типов записей и уровней группировок строк результата.

Кнопка "Выполнить запрос" - выполняет текущий запрос. В дополнительном меню кнопки предусмотрено выполнение только выделенной части текста запроса.

В правом верхнем углу поля текста запроса расположена кнопка открытия текста запроса в отдельном максимизированном окне для более удобного редактирования.

В правом нижнем углу поля текста запроса расположена кнопки копирования в буфер как самого текста запроса, так и фрагмента програмного модуля с описанием запроса и установкой его параметров. 

Версии запроса

В Запроснике ведется хранение версий запроса. При выполнении нового или измененного запроса сохраняется его версия (текст запроса и параметры). Когда версий больше одной - рядом с кнопкой "Выполнить запрос" появляются кнопки для управления версиями: кнопки со стрелками для перехода по версиям, кнопка "..." - окрывает окно для просмотра сохраненных версий. В открытом окне можно вернуться к любой версии запроса. При сохранении файла запросов информация о версиях также сохраняется.

Результат запроса

В нижней части обработки располагается результат запроса. Слева над результатом можно указать способ выгрузки: таблица значений или дерево значений.

На закладке "Результат" находится таблица или дерево результата выполнения запроса (в зависимости от способа выгрузки).

На закладке «Временные таблицы» можно посмотреть содержимое временных таблиц запроса.

Закладка "Временные таблицы" отображается только когда в результате запроса присутствуют временные таблицы. Заголовок закладки содержит информацию о количестве временных таблиц.

При переходе на закладку "Временные таблицы" или при выборе временной таблицы на данной закладке, открывается диалог с информацией о временных таблицах (имя таблицы, время выполнения, количество строк).

Для просмотра содержимого временной таблицы необходимо дважды кликнуть на нужной строке диалога. В результате в табличной части закладки "Временные таблицы" будет отображено содержимое выбранной таблицы, над которым показано время выполнения ее запроса.

На закладке "Временные таблицы" и в списке временных таблиц расположена кнопка "Отладить". При нажатии на нее в дереве запросов создается новый запрос, подчиненный основному запросу. В текст запроса переносится фрагмент основного запроса, связанный с формированием временной таблицы. Также переносятся значения параметров запроса, использующиеся во временной таблице. Следует иметь ввиду, что таким образом можно отлаживать только те временные таблицы, данные для которых берутся непосредственно из базы данных. Т.е. временную таблицу, использующую данные других временных таблиц, описанных в запросе ранее, таким способом отлаживать нельзя.

Над результатом запроса в центре формы отображается информация о времени выполнения запроса. Данный показатель учитывает только время выполнения самого запроса без учета времени вывода запроса в результат.

В правом нижнем углу отобрадается количество строк в реультате запроса (только в режиме Таблица).

Сверху и справа от результата находится кнопка открытия результата запроса в отдельном максимизированном окне для более удобного просмотра и анализа.

Нажатие данной кнопки всегда открывает новое окно с результатом. Таким образом моно открыть и сравнивать различные результаты как различных запросов, так и одного запроса с разными значениями настроек параметров и выборок.

Выполнение алгоритма над результатом запроса

Для выполнения произвольного алгоритма над результатом запроса необходимо нажать кнопку "Выполнить алгоритм..." на закладке "Результат". Выполнение алгоритма возможно только если результат представлен в виде таблицы значений (режим Таблица на закладке "Результат").

В открывшемся диалоговом окне необходимо задать требуемый текст программного модуля, который будет выполнен для каждой строки таблицы результата и нажать на кнопку "Выполнить алгоритм".

При написании алгоритма для обращения к строке результата необходимо использовать выражение СтрокаРезультата.

В левой части формы отображается таблица со списком полей результата запроса. Двойной клик на строке таблицы вставит в текст алгоритма конструкцию СтрокаРезультата.[Поле], где [Поле] - имя выбранного поля.

В подменю кнопки "Выполнить алгоритм" находится дополнительный пункт "Выполнить для первой строки". При выборе этого пункта алгоритм выполняется только для первой строки результата. Этот режим рекомендуется использовать для отладки алгоритма.

Отладка запроса

Для отладки запроса в процессе выполнения программного модуля, необходимо после описания и установки параметров запроса вставить код вида:

ВнешниеОбработки.Создать("Q:\1С\8.1\My_EPFs\Запросник81.epf").Отладить(Запрос);

где

"Q:\1C\8.1\My_EPFs\Запросник81.epf" - путь к обработке на локальном диске;

Запрос - отлаживаемый запрос.

Для открытия окна запросника в модальном режиме, необходимо в функции Отладить() указать второй необязательный параметр равный Истина,

т.е.

ВнешниеОбработки.Создать("Q:\1С\8.1\My_EPFs\Запросник81.epf").Отладить(Запрос, Истина);

В результате в режиме "1С:Предприятие" будет открыто окно обработки с загруженным в нее запросом и установленными параметрами запроса.

В случае открытия в модальном режиме, выполнение последующего кода будет приостановлено до закрытия окна Запросника.

Для просмотра описания по отладке запроса и копирования в буфер пути к Запроснику на локальном диске слудит пункт "Отладка запроса в модуле" в меню действий.

Автор доработок: Тезин Владимир (vtezin@gmail.com)

при участии:

Николаенко Евгений (MyNanoSoft@mail.ru)

Актуальная версия Запросника всегда здесь: https://sites.google.com/site/vtezin/zaprosnik-1s